﻿using Windows.UI.Xaml;

namespace Uhimania.Libraries.Windows.Interactivity
{
    #region IAttachedObject
    /// <summary>
    /// 別のオブジェクトにアタッチ可能なオブジェクトのインターフェース。
    /// </summary>
    public interface IAttachedObject
    {
        #region AssociatedObject
        /// <summary>
        /// インスタンスがアタッチされているオブジェクトを取得する。
        /// </summary>
        DependencyObject AssociatedObject { get; }
        #endregion

        #region Attach
        /// <summary>
        /// 指定されたオブジェクトにアタッチする。
        /// </summary>
        /// <param name="associatedObject">アタッチするオブジェクト。</param>
        void Attach(DependencyObject associatedObject);
        #endregion

        #region Detach
        /// <summary>
        /// このインスタンスを関連オブジェクトからデタッチする。
        /// </summary>
        void Detach();
        #endregion
    }
    #endregion
}
